#include"HashTable.h"

// template<class T>
// class HashTable_iterator
// {
//     pair<int, int>
// };



void test01()
{
    HashTable<int> h;
    int a[] = {11, 21, 4, 14, 24, 15, 9};
    for(auto e : a)
        h.insert(e);
    cout << h.erase(21) << endl;
    cout << h.find(21) << endl;
    cout << h.erase(5) << endl;
}

void test02()
{
    HashTable<string> h;
    string a[] = {"left", "right", "sort"};
    for(auto& e : a)
        h.insert(e);
    cout << h.find("left") << endl;
    cout << h.erase("left") << endl;
    cout << h.erase("xxx") << endl;
    cout << h.find("left") << endl;
    HashTable<string> h1 = h;
}

// #include<iostream>
// #include<unordered_map>
// using namespace std;
// void test_stl_unordered_map01()
// {
//     unordered_map<int, int> h = { {1,2}, {2,2}, {3,3} };
//     auto it = h.begin();
//     while(it != h.end())
//     {
//         cout << it->first << ' ' << it->second << endl;
//         ++it;
//     }
//     // --it; // err 不支持--
// }
int main()
{
    // hash<int> t;
    test02();
    // vector<int> a = { 1,2,3,4 };
    // swap(a[0], a.back());
    // for(int e : a) cout << e << ' ';
    return 0;
}